﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using FBWMS.Properties;

namespace FBWMS
{
    public partial class F_COM_ShortcutKey : Form
    {
        ////////////////////////////////////////////////////////////////////////////
        //
        //初期処理
        //
        ////////////////////////////////////////////////////////////////////////////
        public F_COM_ShortcutKey()
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.F_COM_ShortcutKey, "F_COM_ShortcutKey");

                //初期処理
                InitializeComponent();

                //待機画面の表示 
                G_CommonClassOther.G_Other_WaitForm(true);

                //データを取得して表示
                this.P_DisplayData();

                //サブフォームの交互色設定
                //this.mr_F_COM_ShortcutKey.AlternateMRowColor = true;

                //this.mr_F_COM_ShortcutKey.MRowColorPattern = G_CommonDefine.G_col_MultiRowSheetBackColor;
                

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.FCOMShortcutKey初期処理終了, "F_COM_ShortcutKey");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.FCOMShortcutKey初期処理エラー + err.Message, "F_COM_ShortcutKey");

                //エラーメッセージ表示
                MessageBox.Show(Resources.F_COM_SystemInfo + err.Message, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (G_CommonDefine.G_F_COM_Waiting != null)
                {
                    //待機画面の解除
                    G_CommonClassOther.G_Other_WaitForm(false);
                }
            }
        }

        #region イベントハンドラ ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //サブフォームセルダブルクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        //private void mr_F_COM_ShortcutKey_CellDoubleClick(object sender, GrapeCity.Win.ElTabelle.MClickEventArgs e)
        //{
        //    int int_Current = this.mr_F_COM_ShortcutKey.ActivePosition.MRow + 1;
        //    int int_Total = this.mr_F_COM_ShortcutKey.MRows.Count;

        //    MessageBox.Show(string.Format("現在のレコード : {0} / レコード総数 : {1}", int_Current, int_Total));
        //}

        #endregion *************************************************************************

        #region プライベート関数 ***********************************************************

        /// <summary>
        /// データを取得して表示
        /// </summary>
        private void P_DisplayData()
        {
            SqlConnection connect = null;

            try
            {
                connect = new SqlConnection();

                //DB接続
                if (!G_CommonClassDB.G_DB_Connect(out connect))
                {
                    //エラーメッセージ表示
                    MessageBox.Show(Resources.P_Search);
                    return;
                }

                SqlCommand sqlCmd = connect.CreateCommand();
                SqlParameter[] sqlPara = new SqlParameter[1];                
                sqlPara[0] = G_CommonClassDB.G_DB_SetSQLDBParameter("@Ret", ParameterDirection.Output, SqlDbType.Int, 0, "0");

                DataSet ds;

                //ストアド実行(レコード取得)
                switch (G_CommonClassDB.G_DB_ExecStoredProc(connect, sqlCmd, "USP_PC_F_COM_ShortcutKey_SUB_DataSelect", sqlPara, out ds))
                {
                    case G_CommonDefine.RetValue.GetData :                                                
                        
                        //mr_F_COM_ShortcutKey.DataSource = ds.Tables[0];
                        this.mr_F_COM_ShortcutKey.ActiveSheet.DataSource = ds.Tables[0];

                        break;

                    case G_CommonDefine.RetValue.NoData :

                        MessageBox.Show(Resources.テータかありません, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);

                        break;

                    default :

                        MessageBox.Show(Resources.テータ取得に失敗しました, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);

                        break;
                }
            }
            finally
            {
                //DB開放
                if (!G_CommonClassDB.G_DB_Dispose(connect))
                {
                    //エラーメッセージ表示
                    MessageBox.Show(Resources.UpdateData);                    
                }
            }
        }

        #endregion *************************************************************************

        #region フォーム共通処理 ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //フォームKeyDown時処理
        //(エンターを押した際に次のコントロールに移動する。)
        //(フォームの『KeyPreview』を『true』にすること)
        ////////////////////////////////////////////////////////////////////////////
        private void F_COM_ShortcutKey_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!e.Control)
                {
                    this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
                }
            }
        }

        #endregion *************************************************************************
    }
}